#ifndef _SKY_PROPERTIES_H_
#define _SKY_PROPERTIES_H_
#include <string>
#include "../../geom/Vector3D.h"

namespace slotsdata
{
	class SkyProperties 
	{
		public:
			SkyProperties(float skyBrightness, const geom::Vector3D & sunVector, const geom::Vector3D & topColor, const geom::Vector3D &bottomColor, const geom::Vector3D &hazeColor,
					float sunCoverAngle, float haloCoverAngle, float sunIntensityFactor, float sunSmoothBorder, float hazeStrength, float hazeAmmount) 
				:
				m_skyBrightness(skyBrightness),
				m_sunVector(sunVector), m_topColor(topColor), m_bottomColor(bottomColor), m_hazeColor(hazeColor), 
				m_sunCoverAngle(sunCoverAngle), m_haloCoverAngle(haloCoverAngle), m_sunIntensityFactor(sunIntensityFactor), m_sunSmoothBorder(sunSmoothBorder), 
				m_hazeStrength(hazeStrength), m_hazeAmmount(hazeAmmount){}

			const geom::Vector3D & sunVector() const {return m_sunVector ;}

			const geom::Vector3D & topColor() const {return m_topColor;}
			const geom::Vector3D & bottomColor() const {return m_bottomColor;}
			const geom::Vector3D & hazeColor () const {return m_hazeColor;}

			float sunCoverAngle() const {return m_sunCoverAngle;}
			float haloCoverAngle () const {return m_haloCoverAngle;}
			float sunIntensityFactor () const {return m_sunIntensityFactor;}
			float sunSmoothBorder () const {return m_sunSmoothBorder;}
			float hazeStrength () const {return m_hazeStrength;}
			float hazeAmmount () const {return m_hazeAmmount;}
			float skyBrightness() const{return m_skyBrightness;}
		private:
			float m_skyBrightness;
			geom::Vector3D m_sunVector;

			geom::Vector3D m_topColor;
			geom::Vector3D m_bottomColor;
			geom::Vector3D m_hazeColor ;

			float m_sunCoverAngle;
			float m_haloCoverAngle ;
			float m_sunIntensityFactor ;
			float m_sunSmoothBorder ;
			float m_hazeStrength ;
			float m_hazeAmmount ;


	};
}

#endif

